package com.csyf.manager.service;

import com.csyf.manager.entity.SysPayProduct;
import com.csyf.manager.entity.SysTradeType;
import com.csyf.manager.entity.TradeTypeVo;
import com.csyf.manager.utils.ResultEntity;
import com.csyf.manager.utils.page.JqGridVo;

import java.util.List;

/**
 * @Author: tucj
 * @Date: 2018/4/24 14:25:47
 */
public interface SysTradeTypeBiz {

    /**
     * 查询所有的交易类型
     * @return
     */
    List<SysTradeType> queryAllTradeType();

    /**
     * 根据商户号查询交易类型
     * @param mchId
     * @return
     */
    List<SysTradeType> findTradeTypeByMchId(String mchId);

    /**
     * 保存交易类型
     * @throws Exception
     */
    ResultEntity saveTradeType(String channelIds, TradeTypeVo vo);

    /**
     * 设置商户交易类型
     * @param tradeType
     */
    void addTradeType(SysTradeType tradeType);

    /**
     * 判断交易类型是否存在
     * @Description:
     *
     * @auther: casper
     * @date: 2018/10/27 15:15
     * @param: [tradeType]
     * @return: boolean
     *
     */
    boolean isExist(SysTradeType tradeType);

    /**
     * 停用代理商通道
     * @param vo
     */
    void stopChannelStatus(SysTradeType vo);

    /**
     * 启用代理商通道
     * @param vo
     */
    void startChannelStatus(SysTradeType vo);

    /**
     * 交易类型列表
     * @param vo
     * @param page
     * @param rows
     * @return
     */
    JqGridVo queryTradeTypeList(SysTradeType vo, Integer page, Integer rows);

    /**
     * 根据条件查询交易类型
     * @param mchId
     * @param tradeType
     * @return
     */
    SysTradeType queryTradeTypeByCondition(String mchId, String tradeType);

    /**
     * 编辑交易类型
     * @param tradeTypeForm
     * @return
     */
    int updateByTradeType(SysTradeType tradeTypeForm);
}
